# Contract template

# Destructible tokens

Destructible token means that after the coin is issued, the holder can destroy his own token, or a third party can be responsible for the destruction through approval.

Contract Document: ERC20WithBurnable.sol (opens new window)

Test script: ERC20WithBurnable.js (opens new window)

Deployment script: 3_deploy_ERC20WithBurnable.js (opens new window)

# Define the following variables when deploying the contract

string memory name,     //Token name
string memory symbol,   //Tokens for
uint8 decimals ,        //precision
uint256 totalSupply     //Total circulation

# Calling methods

// Return the token name
name() public view returns (string memory)
// Return token abbreviation
symbol() public view returns (string memory)
// Return token precision
decimals() public view returns (uint8)
// Returns the total number of issues
totalSupply() external view returns (uint256)
// Returns the balance of the specified address
balanceOf(address account) external view returns (uint256)
// Send tokens from the current account to the specified address
transfer(address recipient, uint256 amount) external returns (bool)
// Query the quota given by the owner to spender
allowance(address owner, address spender) external view returns (uint256)
// Approve spender to use the amount token on behalf of the sender
approve(address spender, uint256 amount) external returns (bool)
// Spender calls this function to send the Amount token in the Sender account to the Recipient
transferFrom(address sender, address recipient, uint256 amount) external returns (bool)
// Increase the quota given to Spender
increaseAllowance(address spender, uint256 addedValue) public returns (bool)
// Reduce the quota given to Spender
decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool)
// Special method
// This method is called to destroy tokens from the caller's account
Burn (uint256 amount) to the public
// Call this method to destroy the token from the specified address, and the token is deducted from the sender's approval
BurnFrom (Address Account, uint256 amount) public